Estoy experimentando un comportamiento inesperado de nodemailer:
aquí está mi código:
let transporter = nodemailer.createTransport({ host: 'outlook.office365.com', auth: { user: process.env.MAIL_USER, // generated ethereal user pass: process.env.MAIL_PASS, // generated ethereal password }, tls: { rejectUnauthorized: false }}); let info = transporter.sendMail({ from: '"Mark 👻"mymail@outlook.com', to: "anothermailOfMine@gmail.com", subject: "Hello ✔", text: "Hello world?", html: `<b> <a href='http://localhost:3000/activate_user/${result._id}'> <button>Activate profile</button></a> </b>`, // html body }); transporter.sendMail(info, function (err, info) { if (err) { console.log(err); res.json(err); } else { console.log(' mail sent'); res.json({success:true, message:''}); }})};El método sendMail devuelve un error incluso si el correo se envió con éxito, lo que significa que el front-end nunca recibe una respuesta positiva sobre el envío, ese es el error que acabo de mencionar:
Error: No recipients defined at SMTPConnection._formatErrorMe pregunto si estoy haciendo algo mal.
Eventualmente descubrí cuál era el problema: el método de envío de correo debía llamarse en una función asíncrona.